package org.gwc.error;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

// 全局异常发生
@ControllerAdvice // 可以返回逻辑视图 转发和重定向
@RestControllerAdvice // @ControllerAdvice + @ResponseBody 直接返回json字符串
public class GlobalExceptionHander {

    // 发生异常 -》 ControllerAdvice 注解的类型 -> @ @ExceptionHandler(指定的异常) -> handler -> 返回给浏览器信息
    // 指定异常 可以精确查找 或者查找父异常
    // 空指针异常
    @ExceptionHandler(ArithmeticException.class)
    public Object arithmeticExceptionHandler(ArithmeticException e){
        // 自定义处理异常即可 handler
        String message = e.getMessage();
        System.out.println("空指针 message = " + message);
        // 直接返回给浏览器
        return message;
    }

    @ExceptionHandler(Exception.class)
    public Object exceptionHandler(Exception e){
        String message = e.getMessage();
        System.out.println("不知名异常 message = " + message);
        return message;
    }
}
